/*******************************************************************************
*
*   FILE NAME:
*       BasicEffect.h - BasicEffect class definition
*
*   DESCRIPTION:
*       Contains a basic rendering effect.
*
*******************************************************************************/
#pragma once

#include "Effect.h"
#include "GraphicsDevice.h"
#include "Matrix.h"
#include "Vector3.h"

class BasicEffect : public Effect
{
public:
    BasicEffect( GraphicsDevice& graphics_device );
    BasicEffect( const BasicEffect& other );
    ~BasicEffect( void );

    BasicEffect& operator=( const BasicEffect& other );

protected:

private:
    float32 mAlpha;
    Vector3 mAmbientLightColor;
    Vector3 mDiffuseColor;
    //DirectionalLight DirectionalLight0;
    //DirectionalLight DirectionalLight1;
    //DirectionalLight DirectionalLight2;
    Vector3 mEmissiveColor;
    Vector3 mFogColor;
    boolean mFogEnabled;
    float32 mFogEnd;
    float32 mFogStart;
    boolean mLightingEnabled;
    boolean mPreferPerPixelLighting;
    Matrix mProjection;
    Vector3 mSpecularColor;
    float32 mSpecularPower;
    //Texture2D mTexture;
    boolean mTextureEnabled;
    boolean mVertexColorEnabled;
    Matrix mView;
    Matrix mWorld;
};
